PACKAGE BODY Unit_Test_Assertions IS

   -- Initialise une phase de test
   PROCEDURE Init IS
   BEGIN
      nbError := 0;
      nbTests := 0;
   END Init;


   -- Retourne le nombre d'erreur lors de la phase de test
   FUNCTION Get_Error_Count RETURN Integer IS
   BEGIN
      RETURN nbError;
   END Get_Error_Count;


   -- Retourne le nombre de tests lors de cette phase
   FUNCTION Get_Tests_Count RETURN Integer IS
   BEGIN
      RETURN nbTests;
   END Get_Tests_Count;


   -- Test si deux entier sont egaux
   PROCEDURE Assert_Integer (Tested_Value : Integer; Result : Integer; Message : String := "test") IS
   BEGIN
      Assert_Boolean (Tested_Value = Result, True,  Message);

   END Assert_Integer;


   -- Test si deux booleens sont egaux
   PROCEDURE Assert_Boolean (Tested_Value : Boolean; Result : Boolean; Message : String := "test") IS
   BEGIN
      IF Tested_Value = Result THEN
         Ada.Text_IO.Put_Line ("-" & Message & ": OK" );
      ELSE
         Ada.Text_IO.Put_Line ("!" & Message & ": KO  /!\" );
         nbError := Unit_Test_Assertions.nbError +1;
      END IF;
      nbTests := nbTests +1;
   END Assert_Boolean;


END Unit_Test_Assertions;
